using System;

namespace TasksDataXml.Data
{
    public interface IBaseDataItem : IDisposable
    {
        string Folder { get; }
        string GetFolder(string root);

        void AttachCallbacks(IBaseDataItem parentCategory);
        IBaseDataItem RemoveItem(IBaseDataItem item);

        Func<IBaseDataItem, bool> NotifyParentAdd { get; set; }
        Func<IBaseDataItem, IBaseDataItem> NotifyParentMove { get; set; }
    }
}